package middleware

import (
	"context"

	kitexcontext "testrpc/biz/context"

	"github.com/cloudwego/kitex/pkg/endpoint"
)

// ContextMiddleware 创建一个上下文处理中间件
func ContextMiddleware() endpoint.Middleware {
	return func(next endpoint.Endpoint) endpoint.Endpoint {
		return func(ctx context.Context, req, resp interface{}) (err error) {
			// 从RPC调用的MetaInfo中提取上下文信息
			ctx = kitexcontext.ExtractContextFromMeta(ctx)

			// 调用下一个处理器
			err = next(ctx, req, resp)
			return err
		}
	}
}
